Magnetic resonance imaging (MRI) reconstruction algorithms have progressed dramatically in their complexity and requirements in recent years. In the early years of MRI, raw image data were reconstructed using little more than multi-dimensional Fourier transforms. Subsequently, partial-data acquisition schemes, parallel imaging, compressed sensing, real-time progressive updating, non-Cartesian data acquisition, gradient hardware warp correction, concomitant gradient corrections, de-noising, fat-water separation schemes, and many other advanced computational algorithms have been developed and applied to MRI data reconstructions. For any given disease, functional process, or anatomic feature of interest, different combinations and variations on these reconstruction algorithms may be used in order to produce images with the highest possible diagnostic value.
In some cases, the most time-consuming parts of creating such new algorithms are debugging, parallelization, and memory management.